SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[SP_TCDOCU_ALMA_Q01]  
/*--------------------------------------------------------*/    
/*---Empresa               OFISIS S.A.                 --*/    
/*---Cliente               OFISIS      --*/    
/*---Sistema               Tesoreria                   --*/    
/*---M¸dulo                Empresa                     --*/    
/*---Programa              VALIDACION DE ALMACENES     --*/    
/*---Script                SP_TCDOCU_ALMA_Q02.sql      --*/    
/*---Nombre SP             SP_TCDOCU_ALMA_Q02          --*/    
/*---Desarrollado por      Reynaldo Menacho Luyo       --*/    
/*---Fecha Creaci¸n        01/03/2004                  --*/    
/*---Base Datos            SQL SERVER     --*/    
/*---Versi¸n               2000                         --*/    
/*---Invoca a SP                                       --*/    
/*--------------------------------------------------------*/    
/*--------------------------------------------------------*/  
/*---Modificado 1 por     : Carlos Marquez Escobar  --*/  
/*---Fecha Modificaci®n   : 01/10/2005     --*/  
/*---Detalle Modificaci®n : Adicionar Usuario en Where  --*/  
/*--------------------------------------------------------*/  
/*--------------------------------------------------------*/  
/*---Modificado 2 por     : Carlos Marquez Escobar  --*/  
/*---Fecha Modificaci®n   : 01/10/2005     --*/  
/*---Detalle Modificaci®n : Adicionar O/C Servicio  --*/  
/*--------------------------------------------------------*/  
/*--------------------------------------------------------*/  
/*---Modificado 3 por     : Carlos Marquez Escobar  --*/  
/*---Fecha Modificaci®n   : 06/10/2005     --*/  
/*---Detalle Modificaci®n : Datos Adicionales   --*/  
/*--------------------------------------------------------*/  
/*--------------------------------------------------------*/  
/*---Modificado 3 por     : Carlos Marquez Escobar  --*/  
/*---Fecha Modificaci®n   : 06/10/2005     --*/  
/*---Detalle Modificaci®n : Datos Adicionales   --*/  
/*--------------------------------------------------------*/  
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TCDOCU_ALMA_Q01                      --*/    
/*---Grant Execute on SP_TCDOCU_ALMA_Q01 to public         --*/     
/*---  Declare  
 @ISCO_USUA  TD_VC_008,  
 @ISCA_WHER_0001 VARCHAR(255),    
 @ISCA_WHER_0002 VARCHAR(255),    
 @INNU_ANNO  TD_IN_001,    
 @INNU_MESE  TD_IN_001,    
 @ISCO_MONE_PRES TD_VC_003,    
 @ISST_USUA  TD_VC_001,    
 @INFA_USUA  TD_NU_009_004  
 SET @ISCA_WHER_0001 = "Where   TCDOCU_ALMA.CO_EMPR = '01'"  
 SET @ISCA_WHER_0002 = ""  
 Set @ISCO_USUA = 'OFISIS'  
 Set @INNU_ANNO = 2005  
 Set @INNU_MESE = 10  
 Set @ISCO_MONE_PRES = 'DOL'  
 Set @ISST_USUA = 'N'  
 Set @INFA_USUA = 0  
   
 Execute SP_TCDOCU_ALMA_Q01 @ISCO_USUA, @ISCA_WHER_0001, @ISCA_WHER_0002, @INNU_ANNO, @INNU_MESE, @ISCO_MONE_PRES, 
@ISST_USUA, @INFA_USUA  
  
--*/    
/*-------------------------------------------------------*/    
@ISCO_USUA  TD_VC_008,  
@ISCA_WHER_0001 VARCHAR(255),    
@ISCA_WHER_0002 VARCHAR(255),    
@INNU_ANNO  TD_IN_001,    
@INNU_MESE  TD_IN_001,    
@ISCO_MONE_PRES TD_VC_003,    
@ISST_USUA  TD_VC_001,    
@INFA_USUA  TD_NU_009_004   
 As  
 -- Tabla de Docs de tesoreria --    
 CREATE TABLE #TWDOCU_ALMA_Q02_0  
 ( CO_EMPR   varchar(03) NULL,  
 CO_PROV   varchar(20) NULL,  
 CO_TIPO_DOCU varchar(03) NULL,  
 NU_DOCU_PROV varchar(20) NULL,  
 FE_REGI_COMP  datetime NULL,  
 FE_EMIS   datetime NULL,  
 NU_CORR_COMP  varchar(20) NULL,  
 NU_ASTO    varchar(20) NULL,  
 CO_MONE   varchar(03) NULL,  
 FA_TIPO_CAMB  numeric( 9,4) DEFAULT 0,  
 FA_CAMB_EXTR  numeric( 9,4) DEFAULT 0 NULL,  
 IM_ORIG_TESO  numeric(16,4) DEFAULT 0,  
 IM_CONV_LOGI  numeric(16,4) DEFAULT 0,  
 IM_AUXI   numeric(16,4) DEFAULT 0, --IMPORTE BRUTO AFECTO CONVERTIDO EN SOLES  
 IM_AUXI_0002 numeric(16,4) DEFAULT 0, --TOTAL DE DOCUMENTOS DE IMPORTACIONES EN SOLES (SUMA DE IM_AUXI)  
 IM_AUXI_0003 numeric(16,4) DEFAULT 0, --TOTAL DE DOCUMENTOS CON NOTA DE INGRESO EN SOLES  
 NU_PORC   numeric( 3,2) DEFAULT 0,  
 NU_IMPO   varchar(20) NULL,  
 TI_DETA   varchar(01) NULL,  
 ST_ORIG_COSE varchar(01) NULL --- Si Las facturas se asociaron A O/C de Articulos o de servicios  
)    
  
 -- Tabla de Detalle de Movs de Logistica vs Tesoreria  --  
 CREATE TABLE #TWDOCU_ALMA_Q02_1   ---  Tabla de Trabajo para Selecct F I N A L  
 ( CO_EMPR   varchar(03) NULL,  
 CO_ALMA   varchar(03) NULL,  
 FE_DOCU   datetime NULL,  
 TI_DOCU   varchar(03) NULL,  
 NU_DOCU   varchar(20) NULL,  
 NU_ORCO   varchar(20) NULL,  
 CO_MONE_LOGI varchar(03) NULL,  
 FA_CAMB_LOGI numeric(9,4) DEFAULT 0,  
 IM_ORIG_LOGI numeric(16,4) DEFAULT 0,  
 IM_CONV_LOGI numeric(16,4) DEFAULT 0,  
  
 CO_PROV   varchar(20) NULL,  
 NO_CORT_PROV varchar(50) NULL,  
 FE_REGI_COMP datetime NULL,  
 CO_TIPO_DOCU varchar(03) NULL,  
 NU_DOCU_PROV varchar(20) NULL,  
 NU_CORR_COMP varchar(20) NULL,  
 NU_ASTO    varchar(20) NULL,  
 CO_MONE_TESO varchar(03) NULL,  
 FA_CAMB_TESO numeric( 9,4) DEFAULT 0,  
 FA_CAMB_EXTR numeric( 9,4) DEFAULT 0 NULL,  
 IM_ORIG_TESO numeric(16,4) DEFAULT 0,    
 IM_ORCO_FACT numeric(16,4) DEFAULT 0,    
 IM_CONV_TESO numeric(16,4) DEFAULT 0,  
 NU_IMPO   varchar(20)  NULL,  
 TI_DETA   varchar(01) NULL,  
 ST_ORIG_COSE varchar(01) NULL --- Si Las facturas se asociaron A O/C de Articulos o de servicios)    
 )  
 -- Tabla de Docs de FacturMeses Anteriores de Proveedores  --    
 CREATE TABLE #TWORCO_PROV  
 ( CO_EMPR   varchar(03) NULL,  
 CO_PROV   varchar(20) NULL,  
 CO_TIPO_DOCU varchar(03) NULL,  
 NU_DOCU_PROV varchar(20) NULL,  
 NU_ORCO   varchar(20) NULL,  
 FE_REGI_COMP  datetime NULL,  
 FE_EMIS   datetime NULL,  
 NU_CORR_COMP  varchar(20) NULL,  
 NU_ASTO    varchar(20) NULL,  
 CO_MONE   varchar(03) NULL,  
 FA_TIPO_CAMB  numeric( 9,4) DEFAULT 0,  
 FA_CAMB_EXTR  numeric( 9,4) DEFAULT 0 NULL,  
 IM_ORIG_TESO  numeric(16,4) DEFAULT 0,  
 IM_CONV_LOGI  numeric(16,4) DEFAULT 0,  
 IM_AUXI   numeric(16,4) DEFAULT 0, --IMPORTE BRUTO AFECTO CONVERTIDO EN SOLES  
 IM_AUXI_0002 numeric(16,4) DEFAULT 0, --TOTAL DE DOCUMENTOS DE IMPORTACIONES EN SOLES (SUMA DE IM_AUXI)  
 IM_AUXI_0003 numeric(16,4) DEFAULT 0, --TOTAL DE DOCUMENTOS CON NOTA DE INGRESO EN SOLES  
 NU_PORC   numeric( 3,2) DEFAULT 0,  
 NU_IMPO   varchar(20) NULL,  
 TI_DETA   varchar(01) NULL,  
 ST_ORIG_COSE varchar(01) NULL --- Si Las facturas se asociaron A O/C de Articulos o de servicios  
)    
  
DECLARE     
    
 @VSTI_CAMB  TD_VC_001,    
 @VSTI_ORIG  TD_VC_001,    
 @VSDE_ORDE  TD_VC_050,    
 @VSNU_ANNO  TD_VC_004,    
 @VSNU_MESE  TD_VC_002,    
 @VNIM_CXPA_CONV TD_NU_016_004,    
 @VNIM_PAGO_CONV TD_NU_016_004,    
 @VNFE_0001  TD_IN_001,  
 @VSCO_MONE_NACI TD_VC_003,  
 @VSCO_MONE_EXTR TD_VC_003,  
 @OSTI_DOCU_OCOM TD_VC_003  
   
 SELECT @VSNU_ANNO = Convert(Varchar(4), @INNU_ANNO),   
   @VSNU_MESE = Convert(Varchar(2), @INNU_MESE)  
   
 Exec SP_TTDOCU_CNTB_Q02 15, @OSTI_DOCU_OCOM  OUTPUT  
  
 --Inserto todos los documentos Proveedor Tanto con O/C Articulos como de Servicios y NO TIENEN IMPORTACIONES  
 Insert Into #TWDOCU_ALMA_Q02_0 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, FE_REGI_COMP,  
  FE_EMIS, NU_CORR_COMP, NU_ASTO, CO_MONE, FA_TIPO_CAMB, FA_CAMB_EXTR, IM_ORIG_TESO, IM_CONV_LOGI, TI_DETA,  
  ST_ORIG_COSE)  
 Select T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU,  T1.NU_DOCU_PROV, T1.FE_REGI_COMP,   
   T1.FE_EMIS, T1.NU_CORR_COMP, T1.NU_ASTO, T1.CO_MONE, T1.FA_TIPO_CAMB, T1.FA_CAMB_EXTR, Round(T1.IM_BRUT_AFEC + 
T1.IM_BRUT_INAF, 2), T2.IM_CONV, '2',  
   T1.ST_ORIG_COSE  
 From TMDOCU_PROV T1   
  inner join   
   ( Select CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, Round(Sum(IM_CONV), 2) IM_CONV  
   From TDORDE_FACT  
   Group By CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV ) T2  
   on   
   (T1.CO_EMPR = T2.CO_EMPR  
    And T1.CO_PROV = T2.CO_PROV  
    And T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU  
    And T1.NU_DOCU_PROV = T2.NU_DOCU_PROV)  
 Where Year(T1.FE_REGI_COMP) = @INNU_ANNO  
  And Month(T1.FE_REGI_COMP) = @INNU_MESE  
  And Rtrim(Isnull(T1.NU_IMPO, '')) = ''  
  And NOT (T1.CO_ESTA_DOCU = 'ANU')  
   
 --Inserto todos los documentos Proveedor Tanto con O/C Articulos como de Servicios y  TIENEN IMPORTACIONES  
 Insert Into #TWDOCU_ALMA_Q02_0   
  (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, FE_REGI_COMP,  
   FE_EMIS, NU_CORR_COMP, NU_ASTO, CO_MONE, FA_TIPO_CAMB, FA_CAMB_EXTR, IM_ORIG_TESO, IM_CONV_LOGI, NU_IMPO, TI_DETA,  
  ST_ORIG_COSE)  
 Select T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU,  T1.NU_DOCU_PROV, T1.FE_REGI_COMP,   
   T1.FE_EMIS, T1.NU_CORR_COMP, T1.NU_ASTO, T1.CO_MONE, T1.FA_TIPO_CAMB, T1.FA_CAMB_EXTR,   
   (PatIndex(T4.ST_SIGN, 'S') - PatIndex(T4.ST_SIGN, 'N')) * Round(T1.IM_BRUT_AFEC + T1.IM_BRUT_INAF, 2),   
   (PatIndex(T4.ST_SIGN, 'S') - PatIndex(T4.ST_SIGN, 'N')) * Isnull(T2.IM_CONV, 0),   
   T1.NU_IMPO, '3',  
   t1.ST_ORIG_COSE  
 From TMDOCU_PROV T1   
  inner join TTDOCU_CNTB T4   
  on (T1.CO_TIPO_DOCU = T4.TI_DOCU)    
  left outer join    
   ( Select CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,   
    Round(Isnull(Sum(Isnull(IM_CONV, 0)), 0), 2) IM_CONV---,Max(NU_CORR) NU_CORR  
     From TDORDE_FACT  
     Group By CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV ) T2  
   on   
   (T1.CO_EMPR = T2.CO_EMPR  
    And T1.CO_PROV = T2.CO_PROV  
    And T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU  
    And T1.NU_DOCU_PROV = T2.NU_DOCU_PROV)  
     
 Where  Year(FE_REGI_COMP) = @INNU_ANNO  
 And      Month(FE_REGI_COMP) = @INNU_MESE  
 And NOT (Rtrim(Isnull(NU_IMPO, '')) = '')  
 And NOT (T1.CO_ESTA_DOCU = 'ANU')  
  
  
 --Inserto los documentos que pertenecen a importaciones, Ingresadas como Gasto NO SE USA EN EL Standar, Falta Habilitar--  
 Insert Into #TWDOCU_ALMA_Q02_0 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, FE_REGI_COMP,  
   FE_EMIS, NU_ASTO, CO_MONE, FA_TIPO_CAMB, FA_CAMB_EXTR, IM_ORIG_TESO, IM_CONV_LOGI, NU_IMPO, TI_DETA,  
  ST_ORIG_COSE)  
 Select T1.CO_EMPR, T2.CO_ENTI, T2.CO_TIPO_DOCU,  T2.NU_DOCU_BANC, T2.FE_OPER,   
   T2.FE_OPER, T1.NU_COMP_BANC, T3.CO_MONE, T2.FA_TIPO_CAMB, T2.FA_CAMB_EXTR, T1.IM_DIST, 0,   
   T1.NU_IMPO, '3',  
  'C'  
 From TDBANC_DIST T1, TCMOVI_BANC T2, TMCNTA_BANC T3  
 Where T1.CO_EMPR = T2.CO_EMPR  
  And T1.CO_UNID_CONC = T2.CO_UNID_CONC
  And T1.CO_BANC = T2.CO_BANC  
  And T1.NU_CNTA_BANC = T2.NU_CNTA_BANC  
  And T1.AA_BNCO = T2.AA_BNCO  
  And T1.MM_BNCO = T2.MM_BNCO  
  And T1.TI_MOVI_BANC = T2.TI_MOVI_BANC  
  And T1.NU_COMP_BANC = T2.NU_COMP_BANC  
  And NOT (T2.TI_SITU = 'ANU')  
  And NOT (Rtrim(Isnull(T1.NU_IMPO, '')) = '')  
  And T1.CO_EMPR = T3.CO_EMPR  
  And T1.CO_BANC = T3.CO_BANC  
  And T1.NU_CNTA_BANC = T3.NU_CNTA_BANC  
   
   
  
 --Calculo el importe de tesorer­a en moneda nacional (pueden haber facturas de diferentes monedas)  
 If @ISST_USUA = 'S'  
  Update #TWDOCU_ALMA_Q02_0  
   Set IM_AUXI = CASE T1.CO_MONE   
       WHEN T2.CO_MONE_DEFA THEN T1.IM_ORIG_TESO   
       WHEN T2.CO_MONE_EXTR THEN T1.IM_ORIG_TESO * @INFA_USUA  
       ELSE T1.IM_ORIG_TESO * T1.FA_CAMB_EXTR * @INFA_USUA   
        END  
  From #TWDOCU_ALMA_Q02_0 T1, TMPARA_TESO T2  
  Where T1.CO_EMPR = T2.CO_EMPR  
   And T1.TI_DETA = '3'  
 Else   
  Update #TWDOCU_ALMA_Q02_0  
    Set IM_AUXI = CASE T1.CO_MONE   
        WHEN T2.CO_MONE_DEFA THEN T1.IM_ORIG_TESO   
        WHEN T2.CO_MONE_EXTR THEN T1.IM_ORIG_TESO * T1.FA_TIPO_CAMB  
        ELSE T1.IM_ORIG_TESO * T1.FA_CAMB_EXTR * T1.FA_TIPO_CAMB            END  
  From #TWDOCU_ALMA_Q02_0 T1, TMPARA_TESO T2  
  Where T1.CO_EMPR = T2.CO_EMPR  
  And T1.TI_DETA = '3'  
   
   
 --Calculo el total por importaci½n en moneda nacional, y lo convierto a la moneda de la factura  
 If @ISST_USUA = 'S'  
Update #TWDOCU_ALMA_Q02_0  
  Set IM_AUXI_0002 = T2.IM_AUXI  
  From #TWDOCU_ALMA_Q02_0 T1, (Select NU_IMPO, Sum(IM_AUXI) IM_AUXI  
         From #TWDOCU_ALMA_Q02_0  
         Where NU_IMPO Is Not Null  
         Group By NU_IMPO) T2, TMPARA_TESO T3  
  Where T1.NU_IMPO = T2.NU_IMPO  
  And T1.TI_DETA = '3'  
  And T1.CO_EMPR = T3.CO_EMPR  
 Else  
  Update #TWDOCU_ALMA_Q02_0  
  Set IM_AUXI_0002 = T2.IM_AUXI  
  From #TWDOCU_ALMA_Q02_0 T1, (Select NU_IMPO, Sum(IM_AUXI) IM_AUXI  
         From #TWDOCU_ALMA_Q02_0  
         Where NU_IMPO Is Not Null  
         Group By NU_IMPO) T2, TMPARA_TESO T3  
  Where T1.NU_IMPO = T2.NU_IMPO  
  And T1.TI_DETA = '3'  
  And T1.CO_EMPR = T3.CO_EMPR  
   
   
   
 --Calculo el total de facturas con notas de ingreso (importaciones)  
 Update #TWDOCU_ALMA_Q02_0  
 Set IM_AUXI_0003 = T2.IM_AUXI  
 From #TWDOCU_ALMA_Q02_0 T1, (Select NU_IMPO, Sum(IM_AUXI) IM_AUXI  
        From #TWDOCU_ALMA_Q02_0  
        Where NU_IMPO Is Not Null  
        And IM_CONV_LOGI > 0  
        Group By NU_IMPO) T2, TMPARA_TESO T3  
 Where T1.NU_IMPO = T2.NU_IMPO  
 And T1.TI_DETA = '3'  
 And T1.CO_EMPR = T3.CO_EMPR  
   
   
 Update #TWDOCU_ALMA_Q02_0  
 Set  NU_PORC = Round(IM_AUXI / IM_AUXI_0003, 2)  
 From #TWDOCU_ALMA_Q02_0  
 Where TI_DETA = '3'  
 And IM_CONV_LOGI > 0  
   
   
 If @ISST_USUA = 'S'  
  Update #TWDOCU_ALMA_Q02_0  
  Set  IM_ORIG_TESO = CASE T1.CO_MONE WHEN T2.CO_MONE_DEFA THEN T1.IM_ORIG_TESO + ((T1.IM_AUXI_0002 - T1.IM_AUXI_0003) * 
T1.NU_PORC)  
  WHEN T2.CO_MONE_EXTR THEN T1.IM_ORIG_TESO + (((T1.IM_AUXI_0002 - T1.IM_AUXI_0003) * T1.NU_PORC) / @INFA_USUA)  
  ELSE T1.IM_ORIG_TESO + (((T1.IM_AUXI_0002 - T1.IM_AUXI_0003) * T1.NU_PORC) / @INFA_USUA) / T1.FA_CAMB_EXTR END  
  From #TWDOCU_ALMA_Q02_0 T1, TMPARA_TESO T2  
  Where T1.TI_DETA = '3'  
  And T1.IM_CONV_LOGI > 0  
  And T1.CO_EMPR = T2.CO_EMPR  
 Else  
  Update #TWDOCU_ALMA_Q02_0  
  Set  IM_ORIG_TESO = CASE T1.CO_MONE WHEN T2.CO_MONE_DEFA THEN T1.IM_ORIG_TESO + ((T1.IM_AUXI_0002 - T1.IM_AUXI_0003) * 
T1.NU_PORC)  
  WHEN T2.CO_MONE_EXTR THEN T1.IM_ORIG_TESO + (((T1.IM_AUXI_0002 - T1.IM_AUXI_0003) * T1.NU_PORC) / T1.FA_TIPO_CAMB)  
  ELSE T1.IM_ORIG_TESO + (((T1.IM_AUXI_0002 - T1.IM_AUXI_0003) * T1.NU_PORC) / T1.FA_TIPO_CAMB) / T1.FA_CAMB_EXTR END  
  From #TWDOCU_ALMA_Q02_0 T1, TMPARA_TESO T2  
  Where T1.TI_DETA = '3'  
  And T1.IM_CONV_LOGI > 0  
  And T1.CO_EMPR = T2.CO_EMPR  
   
   
 Delete #TWDOCU_ALMA_Q02_0  
 Where (Year(FE_REGI_COMP) != @INNU_ANNO  
 Or Month(FE_REGI_COMP) != @INNU_MESE)  
 And TI_DETA = '3'  
   
   
 --Facturas con una o mÿs de una nota de ingreso (no pertenecen a una importaci½n)  
 Execute( '  
  Insert Into #TWDOCU_ALMA_Q02_1 (CO_EMPR, CO_ALMA, FE_DOCU, TI_DOCU, NU_DOCU, NU_ORCO,  
  CO_MONE_LOGI, FA_CAMB_LOGI, IM_ORIG_LOGI, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_CORR_COMP, NU_ASTO, CO_MONE_TESO,  
  IM_ORIG_TESO, FA_CAMB_TESO, FA_CAMB_EXTR, FE_REGI_COMP, TI_DETA, ST_ORIG_COSE)  
  Select TCDOCU_ALMA.CO_EMPR, TCDOCU_ALMA.CO_ALMA, Max(TCDOCU_ALMA.FE_DOCU), TCDOCU_ALMA.TI_DOCU, TCDOCU_ALMA.NU_DOCU, 
Max(TCDOCU_ALMA.NU_ORCO),  
  "SOL", Max(T2.FA_CAMB), Sum(Round(T2.CA_DOCU_ALMA * T2.IM_COST_ALMA, 4)),   
  Max(T4.CO_PROV), Max(T4.CO_TIPO_DOCU), Max(T4.NU_DOCU_PROV), Max(T4.NU_CORR_COMP), Max(T4.NU_ASTO), Max(T4.CO_MONE),   
  Round( Max(T3.IM_CONV) + (Max(T3.IM_CONV) / Max(T4.IM_CONV_LOGI)) *   
  (Max(T4.IM_ORIG_TESO) - Max(T4.IM_CONV_LOGI)), 2), Max(T4.FA_TIPO_CAMB), Max(T4.FA_CAMB_EXTR), Max(T4.FE_REGI_COMP), "1", 
Max(t4.ST_ORIG_COSE)  
  From TCDOCU_ALMA, TDDOCU_ALMA T2, TDORDE_FACT T3, #TWDOCU_ALMA_Q02_0 T4, TREMPR_GRUP T8, TMUSUA T9 ' + @ISCA_WHER_0001 + 
@ISCA_WHER_0002 + '   
  And TCDOCU_ALMA.NU_DOCU = T2.NU_DOCU  
  And TCDOCU_ALMA.TI_DOCU = T2.TI_DOCU  
  And TCDOCU_ALMA.CO_ALMA = T2.CO_ALMA  
  And TCDOCU_ALMA.CO_UNID = T2.CO_UNID  
  And TCDOCU_ALMA.CO_EMPR = T2.CO_EMPR  
  And TCDOCU_ALMA.TI_SITU = "ACT"  
  And T2.TI_SITU = "ACT"  
  And ( Year(TCDOCU_ALMA.FE_DOCU) <= ' + @VSNU_ANNO + '  
  Or ( Year(TCDOCU_ALMA.FE_DOCU) = ' + @VSNU_ANNO + ' And Month(TCDOCU_ALMA.FE_DOCU) <= ' + @VSNU_MESE + ' ))  
  And TCDOCU_ALMA.CO_EMPR = T3.CO_EMPR  
  And TCDOCU_ALMA.TI_DOCU = T3.TI_DOCU_GUIN  
  And TCDOCU_ALMA.NU_DOCU = T3.NU_DOCU_GUIN  
  And T3.CO_EMPR = T4.CO_EMPR  
  And T3.CO_PROV = T4.CO_PROV  
  And T3.CO_TIPO_DOCU = T4.CO_TIPO_DOCU  
  And T3.NU_DOCU_PROV = T4.NU_DOCU_PROV  
  And T4.TI_DETA = "2"  
  And TCDOCU_ALMA.CO_EMPR =  T8.CO_EMPR  
  And T8.CO_GRUP = T9.CO_GRUP  
  And T9.CO_USUA =  "'+ @ISCO_USUA + '"  
  Group By TCDOCU_ALMA.TI_DOCU, TCDOCU_ALMA.NU_DOCU, TCDOCU_ALMA.CO_ALMA, TCDOCU_ALMA.CO_UNID, TCDOCU_ALMA.CO_EMPR ')  
    
   
 --Facturas que pertenecen a una importaci½n  
 Execute( '  
  Insert Into #TWDOCU_ALMA_Q02_1 (CO_EMPR, CO_ALMA, FE_DOCU, TI_DOCU, NU_DOCU, NU_ORCO,  
  CO_MONE_LOGI, FA_CAMB_LOGI, IM_ORIG_LOGI, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_CORR_COMP, NU_ASTO, CO_MONE_TESO,  
  IM_ORIG_TESO, FA_CAMB_TESO, FA_CAMB_EXTR, FE_REGI_COMP, TI_DETA, NU_IMPO, ST_ORIG_COSE)  
  Select TCDOCU_ALMA.CO_EMPR, TCDOCU_ALMA.CO_ALMA, Max(TCDOCU_ALMA.FE_DOCU), TCDOCU_ALMA.TI_DOCU, TCDOCU_ALMA.NU_DOCU, 
Max(TCDOCU_ALMA.NU_ORCO),  
  "SOL", Max(T2.FA_CAMB), Sum(Round(T2.CA_DOCU_ALMA * T2.IM_COST_ALMA, 4)),   
  Max(T4.CO_PROV), Max(T4.CO_TIPO_DOCU), Max(T4.NU_DOCU_PROV), Max(T4.NU_CORR_COMP), Max(T4.NU_ASTO), Max(T4.CO_MONE),   
  Max(T4.IM_ORIG_TESO), Max(T4.FA_TIPO_CAMB), Max(T4.FA_CAMB_EXTR), Max(T4.FE_REGI_COMP), "1", Max(T4.NU_IMPO), 
Max(t4.ST_ORIG_COSE)  
  From TCDOCU_ALMA, TDDOCU_ALMA T2, TDORDE_FACT T3, #TWDOCU_ALMA_Q02_0 T4, TREMPR_GRUP T8, TMUSUA T9 ' + @ISCA_WHER_0001 + 
@ISCA_WHER_0002 + '   
  And TCDOCU_ALMA.NU_DOCU = T2.NU_DOCU  
  And TCDOCU_ALMA.TI_DOCU = T2.TI_DOCU  
  And TCDOCU_ALMA.CO_ALMA = T2.CO_ALMA  
  And TCDOCU_ALMA.CO_UNID = T2.CO_UNID  
  And TCDOCU_ALMA.CO_EMPR = T2.CO_EMPR  
  And TCDOCU_ALMA.TI_SITU = "ACT"  
  And T2.TI_SITU = "ACT"  
  And ( Year(TCDOCU_ALMA.FE_DOCU) <= ' + @VSNU_ANNO + '  
  Or ( Year(TCDOCU_ALMA.FE_DOCU) = ' + @VSNU_ANNO + ' And Month(TCDOCU_ALMA.FE_DOCU) <= ' + @VSNU_MESE + ' ))  
  And TCDOCU_ALMA.CO_EMPR = T3.CO_EMPR  
  And TCDOCU_ALMA.TI_DOCU = T3.TI_DOCU_GUIN  
  And TCDOCU_ALMA.NU_DOCU = T3.NU_DOCU_GUIN  
  And T3.CO_EMPR = T4.CO_EMPR  
  And T3.CO_PROV = T4.CO_PROV  
  And T3.CO_TIPO_DOCU = T4.CO_TIPO_DOCU  
  And T3.NU_DOCU_PROV = T4.NU_DOCU_PROV  
  And T4.TI_DETA = "3"  
  And TCDOCU_ALMA.CO_EMPR =  T8.CO_EMPR  
  And T8.CO_GRUP = T9.CO_GRUP  
  And T9.CO_USUA =  "'+ @ISCO_USUA + '"  
  Group By TCDOCU_ALMA.TI_DOCU, TCDOCU_ALMA.NU_DOCU, TCDOCU_ALMA.CO_ALMA, TCDOCU_ALMA.CO_UNID, TCDOCU_ALMA.CO_EMPR ')  
  
   
 --Notas de Ingreso del periodo que no fueron provisionadas  
 Execute( '  
  Insert Into #TWDOCU_ALMA_Q02_1 (CO_EMPR, CO_ALMA, FE_DOCU, TI_DOCU, NU_DOCU, NU_ORCO,  
  CO_MONE_LOGI, FA_CAMB_LOGI, IM_ORIG_LOGI, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_CORR_COMP, NU_ASTO, CO_MONE_TESO,  
  IM_ORIG_TESO, TI_DETA, ST_ORIG_COSE)  
  Select TCDOCU_ALMA.CO_EMPR, TCDOCU_ALMA.CO_ALMA, Max(TCDOCU_ALMA.FE_DOCU), TCDOCU_ALMA.TI_DOCU, TCDOCU_ALMA.NU_DOCU, 
Max(TCDOCU_ALMA.NU_ORCO),  
  "SOL", Max(T2.FA_CAMB), Sum(Round(T2.CA_DOCU_ALMA * T2.IM_COST_ALMA, 4)),   
  Max(t3.CO_PROV), Null, Null, Null, Null, Null, 0, "2", "C"  
  From TCDOCU_ALMA, TDDOCU_ALMA T2, TCORDE_COMP T3, TTTIOP_LOGI T4, TREMPR_GRUP T8, TMUSUA T9 ' + @ISCA_WHER_0001 + 
@ISCA_WHER_0002 + '   
  And TCDOCU_ALMA.NU_DOCU = T2.NU_DOCU  
  And TCDOCU_ALMA.TI_DOCU = T2.TI_DOCU  
  And TCDOCU_ALMA.CO_ALMA = T2.CO_ALMA  
  And TCDOCU_ALMA.CO_UNID = T2.CO_UNID  
  And TCDOCU_ALMA.CO_EMPR = T2.CO_EMPR  
  And TCDOCU_ALMA.TI_SITU = "ACT"  
  And T2.TI_SITU = "ACT"  
  And Year(TCDOCU_ALMA.FE_DOCU) = ' + @VSNU_ANNO + '  
  And Month(TCDOCU_ALMA.FE_DOCU) = ' + @VSNU_MESE + '  
  And TCDOCU_ALMA.NU_ORCO = T3.NU_ORCO  
  And TCDOCU_ALMA.CO_EMPR = T3.CO_EMPR  
  And TCDOCU_ALMA.TI_OPER = T4.TI_OPER  
  And TCDOCU_ALMA.CO_EMPR = T4.CO_EMPR  
  And T4.ST_ORCO = "S"  
  And Not Exists (Select T3.NU_DOCU_GUIN  
  From TDORDE_FACT T3, #TWDOCU_ALMA_Q02_0 T4  
  Where TCDOCU_ALMA.CO_EMPR = T3.CO_EMPR  
  And TCDOCU_ALMA.TI_DOCU = T3.TI_DOCU_GUIN  
  And TCDOCU_ALMA.NU_DOCU = T3.NU_DOCU_GUIN  
  And T3.CO_EMPR = T4.CO_EMPR  
  And T3.CO_PROV = T4.CO_PROV  
  And T3.CO_TIPO_DOCU = T4.CO_TIPO_DOCU  
  And T3.NU_DOCU_PROV = T4.NU_DOCU_PROV)  
  And TCDOCU_ALMA.CO_EMPR =  T8.CO_EMPR  
  And T8.CO_GRUP = T9.CO_GRUP  
  And T9.CO_USUA =  "'+ @ISCO_USUA + '"  
  Group By TCDOCU_ALMA.TI_DOCU, TCDOCU_ALMA.NU_DOCU, TCDOCU_ALMA.CO_ALMA, TCDOCU_ALMA.CO_UNID, TCDOCU_ALMA.CO_EMPR ')  
   
  
 --Ordenes de compra de Servicio  
 Execute( '  
  Insert Into #TWDOCU_ALMA_Q02_1 (CO_EMPR, CO_ALMA, FE_DOCU, TI_DOCU, NU_DOCU, NU_ORCO,  
  CO_MONE_LOGI, FA_CAMB_LOGI, IM_ORIG_LOGI, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_CORR_COMP, NU_ASTO, CO_MONE_TESO,  
  IM_ORIG_TESO, FA_CAMB_TESO, FA_CAMB_EXTR, FE_REGI_COMP, TI_DETA, NU_IMPO, ST_ORIG_COSE)  
  Select TCORDE_COMP.CO_EMPR, Null, Max(TCORDE_COMP.FE_EMIS), Null, Null, TCORDE_COMP.NU_ORCO,  
    Max(TCORDE_COMP.CO_MONE),Max(TCORDE_COMP.FA_CAMB), Isnull(Sum(Round((TCORDE_COMP.IM_BRUT_AFEC - TCORDE_COMP.IM_DCT1 - 
TCORDE_COMP.IM_DCT2), 4)),0),   
   Max(T4.CO_PROV), Max(T4.CO_TIPO_DOCU), Max(T4.NU_DOCU_PROV), Max(T4.NU_CORR_COMP),  Max(T4.NU_ASTO), Max(T4.CO_MONE),   
   Round( Max(T3.IM_CONV) , 2), Max(T4.FA_TIPO_CAMB), Max(T4.FA_CAMB_EXTR), Max(T4.FE_REGI_COMP), "1", Max(T4.NU_IMPO), 
Max(t4.ST_ORIG_COSE)  
  From TCORDE_COMP, TMPARA_TESO t2, TDORDE_FACT T3, #TWDOCU_ALMA_Q02_0 T4, TREMPR_GRUP T8, TMUSUA T9  
  Where   
   TCORDE_COMP.TI_SITU != "ANU"  
  And ( Year(TCORDE_COMP.FE_EMIS) <= ' + @VSNU_ANNO + '  
  Or ( Year(TCORDE_COMP.FE_EMIS) = ' + @VSNU_ANNO + ' And Month(TCORDE_COMP.FE_EMIS) <= ' + @VSNU_MESE + ' ))  
  And TCORDE_COMP.CO_EMPR = t2.CO_EMPR  
  And TCORDE_COMP.CO_EMPR = T3.CO_EMPR  
  And TCORDE_COMP.NU_ORCO = T3.NU_DOCU_ORIG  
  
  And T3.CO_EMPR = T4.CO_EMPR  
  And T3.CO_PROV = T4.CO_PROV  
  And T3.CO_TIPO_DOCU = T4.CO_TIPO_DOCU  
  And T3.NU_DOCU_PROV = T4.NU_DOCU_PROV  
  And T4.ST_ORIG_COSE = "S"  
  And TCORDE_COMP.CO_EMPR =  T8.CO_EMPR  
  And T8.CO_GRUP = T9.CO_GRUP  
  And T9.CO_USUA =  "'+ @ISCO_USUA + '"  
  Group By TCORDE_COMP.CO_EMPR, TCORDE_COMP.NU_ORCO ')  
  
 --Ordenes de Compra Generadas y Sin Atender  
 Execute( '  
  Insert Into #TWDOCU_ALMA_Q02_1 (CO_EMPR, CO_ALMA, FE_DOCU, TI_DOCU, NU_DOCU, NU_ORCO,  
  CO_MONE_LOGI, FA_CAMB_LOGI, IM_ORIG_LOGI, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_CORR_COMP, NU_ASTO, CO_MONE_TESO,  
  IM_ORIG_TESO, FA_CAMB_TESO, FA_CAMB_EXTR, FE_REGI_COMP, TI_DETA, NU_IMPO, ST_ORIG_COSE)  
  Select TCORDE_COMP.CO_EMPR,   
    Case Max(ST_SERV )  
     When "S" Then Null   
     Else Max(TCORDE_COMP.CO_ALMA)  
    End, Max(TCORDE_COMP.FE_EMIS), Null, Null, TCORDE_COMP.NU_ORCO,  
    Max(TCORDE_COMP.CO_MONE),Max(TCORDE_COMP.FA_CAMB), Isnull(Sum(Round((TCORDE_COMP.IM_BRUT_AFEC - TCORDE_COMP.IM_DCT1 - 
TCORDE_COMP.IM_DCT2), 4)),0),   
   Max(TCORDE_COMP.CO_PROV), Null, Null, Null,  Null, Null,   
   0.00, Max(TCORDE_COMP.FA_CAMB), 1, Null, "1", Null, Null  
  From TCORDE_COMP  
  Where   
   TCORDE_COMP.TI_SITU != "ANU"  
  And ( Year(TCORDE_COMP.FE_EMIS) <= ' + @VSNU_ANNO + '  
  Or ( Year(TCORDE_COMP.FE_EMIS) = ' + @VSNU_ANNO + ' And Month(TCORDE_COMP.FE_EMIS) <= ' + @VSNU_MESE + ' ))  
  
  
  And Not Exists ( Select T3.NU_DOCU_ORIG   
      From TDORDE_FACT T3, #TWDOCU_ALMA_Q02_0 T4  
     Where  
      TCORDE_COMP.CO_EMPR = T4.CO_EMPR  
      And TCORDE_COMP.NU_ORCO = T3.NU_DOCU_ORIG  
      And T3.CO_EMPR = T4.CO_EMPR  
      And T3.CO_PROV = T4.CO_PROV  
      And T3.CO_TIPO_DOCU = T4.CO_TIPO_DOCU  
      And T3.NU_DOCU_PROV = T4.NU_DOCU_PROV )  
  
  Group By TCORDE_COMP.CO_EMPR, TCORDE_COMP.NU_ORCO ')  
  
  
 -----------------------------------------------------------------------------------  
 ----- Cargo Tabla de Facturaciones Parciales de Meses Anteriores a OC Servicios----  
 -----------------------------------------------------------------------------------  
 Insert Into #TWORCO_PROV  
  (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,  NU_ORCO, FE_REGI_COMP,  
   FE_EMIS, NU_CORR_COMP, NU_ASTO, CO_MONE, FA_TIPO_CAMB, FA_CAMB_EXTR, IM_ORIG_TESO, IM_CONV_LOGI, NU_IMPO, TI_DETA,  
  ST_ORIG_COSE)  
 Select T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU,  T1.NU_DOCU_PROV, t2.NU_ORCO, T1.FE_REGI_COMP,   
   T1.FE_EMIS, T1.NU_CORR_COMP, T1.NU_ASTO, T1.CO_MONE, T1.FA_TIPO_CAMB, T1.FA_CAMB_EXTR,   
   (PatIndex(T4.ST_SIGN, 'S') - PatIndex(T4.ST_SIGN, 'N')) * Round(T1.IM_BRUT_AFEC + T1.IM_BRUT_INAF, 2),   
   (PatIndex(T4.ST_SIGN, 'S') - PatIndex(T4.ST_SIGN, 'N')) * Isnull(T2.IM_CONV, 0),   
   T1.NU_IMPO, '3',  
   t1.ST_ORIG_COSE  
 From TMDOCU_PROV T1   
  inner join TTDOCU_CNTB T4   
  on (T1.CO_TIPO_DOCU = T4.TI_DOCU)    
  inner join   
   ( Select CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_DOCU_ORIG NU_ORCO,  
    Round(Isnull(Sum(Isnull(IM_CONV, 0)), 0), 2) IM_CONV  
     From TDORDE_FACT  
     Group By CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV, NU_DOCU_ORIG ) T2  
   on   
   (T1.CO_EMPR = T2.CO_EMPR  
    And T1.CO_PROV = T2.CO_PROV  
    And T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU  
    And T1.NU_DOCU_PROV = T2.NU_DOCU_PROV)  
     
 Where   
  ( Year(T1.FE_REGI_COMP) < @VSNU_ANNO  
  Or ( Year(T1.FE_REGI_COMP) = @VSNU_ANNO And Month(T1.FE_REGI_COMP) < @VSNU_MESE )) And  
  t1.ST_ORIG_COSE = 'S' And  
  Exists (Select t3.NU_DOCU_PROV  
     From #TWDOCU_ALMA_Q02_1 t3  
     Where   
       T1.CO_EMPR = T3.CO_EMPR  
       And T1.CO_PROV = T3.CO_PROV  
       And T2.NU_ORCO = T3.NU_ORCO)  
    
  
  
 ---====================================================================================---  
 ----- Actualizo en la Tabla Principal Nombre Proveedor, Importe Facturados Parciales ----  
 ---====================================================================================---  
 
 Update #TWDOCU_ALMA_Q02_1  
 Set  NO_CORT_PROV = t3.NO_CORT_PROV,  
   IM_ORCO_FACT = IsNull(t2.IM_PARC_FACT,0),  
   FA_CAMB_TESO = Case FA_CAMB_TESO When 0 Then 1 Else FA_CAMB_TESO End,  
   FA_CAMB_LOGI = Case FA_CAMB_TESO When 0 Then 1 Else FA_CAMB_LOGI End  
 From #TWDOCU_ALMA_Q02_1 T1   
  inner join TMPROV t3  
   on (T1.CO_PROV = T3.CO_PROV)  
  left outer join    
   ( Select CO_EMPR, CO_PROV, NU_ORCO,   
    Round(Isnull(Sum(Isnull(IM_CONV_LOGI, 0)), 0), 2) IM_PARC_FACT  
     From #TWORCO_PROV  
     Group By CO_EMPR, CO_PROV, NU_ORCO ) T2  
   on   
   (T1.CO_EMPR = T2.CO_EMPR  
    And T1.CO_PROV = T2.CO_PROV  
    And T1.NU_ORCO = T2.NU_ORCO )  
   
 
 if @ISST_USUA = 'N' --- Origen   
 BEGIN
  Select T1.CO_EMPR, T6.DE_NOMB, T1.CO_ALMA, T5.DE_ALMA, Convert(Varchar(10), T1.FE_DOCU, 103), t1.NU_ORCO, T1.TI_DOCU, 
T1.NU_DOCU,  
    T1.CO_PROV, T1.NO_CORT_PROV,   
    T1.CO_MONE_LOGI,   
    (IsNull(T1.IM_ORIG_LOGI,0) - IsNull(T1.IM_ORCO_FACT,0)),   
    Case (t1.FA_CAMB_TESO)  
    When 0 Then   
     Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_LOGI, @ISCO_MONE_PRES, T1.FE_DOCU,  
     (IsNull(T1.IM_ORIG_LOGI,0) - IsNull(T1.IM_ORCO_FACT,0)),  
     t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, t1.FA_CAMB_LOGI), 2)   
    Else   
     Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_LOGI, @ISCO_MONE_PRES, T1.FE_DOCU,  
     (IsNull(T1.IM_ORIG_LOGI,0) - IsNull(T1.IM_ORCO_FACT,0)),  
     t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, t1.FA_CAMB_TESO), 2)  
    End,   
    T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,   
    T1.NU_ASTO, T1.NU_CORR_COMP, T1.CO_MONE_TESO,   
    Round(T1.IM_ORIG_TESO, 2),   
    Case (t1.FA_CAMB_TESO)  
     When 0 Then   
      Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_TESO, @ISCO_MONE_PRES, T1.FE_DOCU,  
      T1.IM_CONV_TESO,  
      t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, t1.FA_CAMB_LOGI), 2)     
     Else   
      Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_TESO, @ISCO_MONE_PRES, T1.FE_DOCU,  
      T1.IM_ORIG_TESO,  
      t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, t1.FA_CAMB_TESO), 2)  
    End,  
    IsNull(  
     Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_TESO, @ISCO_MONE_PRES, T1.FE_DOCU,  
      T1.IM_ORIG_TESO,  
     t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, t1.FA_CAMB_TESO) -  
        dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_LOGI, @ISCO_MONE_PRES, T1.FE_DOCU,  
      (IsNull(T1.IM_ORIG_LOGI,0) - IsNull(T1.IM_ORCO_FACT,0)),  
     t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, t1.FA_CAMB_LOGI),2),   
     ( T1.IM_ORIG_TESO - (T1.IM_ORIG_LOGI - T1.IM_ORCO_FACT))  
     ) ,   
    ( T1.IM_ORIG_TESO - (T1.IM_ORIG_LOGI - T1.IM_ORCO_FACT)),   
    T1.FE_DOCU, T1.TI_DETA  
  From #TWDOCU_ALMA_Q02_1 T1   
  inner join TMPARA_TESO T2  
   On (T1.CO_EMPR = T2.CO_EMPR)  
  inner join TMEMPR T6  
   On (T1.CO_EMPR = T6.CO_EMPR)    
  left outer join  TMALMA T5  
   On(T1.CO_EMPR = T5.CO_EMPR  
   And T1.CO_ALMA = T5.CO_ALMA)  
  Where Abs(T1.IM_ORIG_LOGI - T1.IM_ORCO_FACT) > 0.99  
  
  Order By 1, 3, 6  
  
  END
  
 Else --- Digitado  
 BEGIN
  Select T1.CO_EMPR, T6.DE_NOMB, T1.CO_ALMA, T5.DE_ALMA, Convert(Varchar(10), T1.FE_DOCU, 103), t1.NU_ORCO, T1.TI_DOCU, 
T1.NU_DOCU,  
    T1.CO_PROV, T1.NO_CORT_PROV,   
    T1.CO_MONE_LOGI, (T1.IM_ORIG_LOGI - T1.IM_ORCO_FACT),   
    Case (@INFA_USUA)  
     When 0 Then 0.000  
    Else     
     Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_LOGI, @ISCO_MONE_PRES, T1.FE_DOCU,  
     (T1.IM_ORIG_LOGI - T1.IM_ORCO_FACT),  
     t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, @INFA_USUA), 2)  
    End,   
    T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,   
    T1.NU_ASTO, T1.NU_CORR_COMP, T1.CO_MONE_TESO,   
    Round(T1.IM_ORIG_TESO, 2),   
    Case (@INFA_USUA)  
     When 0 Then 0.000  
     Else   
      Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_LOGI, @ISCO_MONE_PRES, T1.FE_DOCU,  
      T1.IM_CONV_TESO,  
      t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, @INFA_USUA), 2)  
    End,   
    Case (@INFA_USUA)  
     When 0 Then 0.000  
     Else     
      Round(dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE_LOGI, @ISCO_MONE_PRES, T1.FE_DOCU,  
     ( T1.IM_ORIG_TESO - (T1.IM_ORIG_LOGI - T1.IM_ORCO_FACT)),  
      t2.TI_CAMB, t2.TI_ORIG, 'S', t2.CO_MONE_DEFA, t2.CO_MONE_EXTR, @INFA_USUA), 2)  
    End,   
    T1.FE_DOCU, T1.TI_DETA  
  From #TWDOCU_ALMA_Q02_1 T1   
  inner join TMPARA_TESO T2  
   On (T1.CO_EMPR = T2.CO_EMPR)  
  inner join TMEMPR T6  
   On (T1.CO_EMPR = T6.CO_EMPR)    
  left outer join  TMALMA T5  
   On(T1.CO_EMPR = T5.CO_EMPR  
   And T1.CO_ALMA = T5.CO_ALMA)  
  Order By 1, 3, 17  
  END
   -- SELECT  'AKI'
RETURN    
/*------------------------- FIN ------------------------------ */


GO
